#ifndef _CPU_IF_H
#define _CPU_IF_H

#include <systemc.h>
#include "CPU_define.h"

class CPU_if
: public sc_interface
{
public:
	virtual const bool
	CPU_init_transaction(bool is_write,
						 CPU_addr_t addr,
						 unsigned data_length) = 0;

	virtual const bool
	CPU_end_transaction() = 0;

	virtual const bool
	CPU_is_ready() const = 0;

	virtual const bool
	CPU_is_done() const = 0;

	virtual const CPU_data_t
	CPU_read_data() = 0;

	virtual const bool
	CPU_write_data(CPU_data_t data_) = 0;

	virtual const bool
	CPU_check_interrupt(unsigned interrupt_type) = 0;
};

#endif
